
package controllers;


import java.sql.*;
import java.util.ArrayList;


// Atributos

public class usuario {  
    
    private String idUsuario;
    private String tipoUsuario;
    private String loginUsuario;
    private String passwordUsuario;
    private String Persona_rutPersona;
    private String Presentacion_Preograma_idPresentacion;
    private String Colegio_idColegio;
    private String Propuesta_Economica_Online_idPropuesta;

    // estos son de la tabla persona
    
    

    
    // Constructor Vacio
    public usuario(){
    }
    
    // Constructor
    public usuario(String idUsuario, String tipoUsuario,String loginUsuario, String passwordUsuario, String Persona_rutPersona, String Presentacion_Preograma_idPresentacion,String Colegio_idColegio,String Propuesta_Economica_Online_idPropuesta   ) {
        
        this.idUsuario = idUsuario;
        this.tipoUsuario = tipoUsuario;
        this.loginUsuario = loginUsuario;
        this.passwordUsuario = passwordUsuario;
        this.Persona_rutPersona = Persona_rutPersona;
        this.Presentacion_Preograma_idPresentacion =Presentacion_Preograma_idPresentacion;
        this.Colegio_idColegio =Colegio_idColegio;
        this.Propuesta_Economica_Online_idPropuesta =Propuesta_Economica_Online_idPropuesta;
        
        }

 // Metodos Get and Set
    
    public String getloginUsuario () {
        return loginUsuario ;
    }

    public void setloginUsuario (String loginUsuario ) {
        this.loginUsuario  = loginUsuario ;
    }
//-------------------------------------------------------------------
    public String getpasswordUsuario() {
        return passwordUsuario;
    }

    public void setpasswordUsuario(String passwordUsuario) {
        this.passwordUsuario = passwordUsuario;
    }

//--------------------------------------------------------------
    public String getidUsuario() {
        return idUsuario;
    }

    public void setidUsuario(String idUsuario) {
        this.idUsuario = idUsuario;
    }
//-----------------------
 public String gettipoUsuario() {
        return tipoUsuario;
    }

    public void settipoUsuario(String tipoUsuario) {
        this.tipoUsuario = tipoUsuario;
    }
    //----------------------
     public String getPersona_rutPersona() {
        return Persona_rutPersona;
    }

    public void setPersona_rutPersona(String Persona_rutPersona) {
        this.Persona_rutPersona = Persona_rutPersona;
    }
    //----------------------------------
     public String getPresentacion_Preograma_idPresentacion() {
        return Presentacion_Preograma_idPresentacion;
    }

    public void setPresentacion_Preograma_idPresentacion(String Presentacion_Preograma_idPresentacion) {
        this.Presentacion_Preograma_idPresentacion= Presentacion_Preograma_idPresentacion;
    }
 //--------------------------------------------   
    public String getColegio_idColegio() {
        return Colegio_idColegio;
    }

    public void setColegio_idColegio(String Colegio_idColegio) {
        this.Colegio_idColegio= Colegio_idColegio;
    }
  //----------------------------------
     public String getPropuesta_Economica_Online_idPropuesta() {
        return Propuesta_Economica_Online_idPropuesta;
    }

    public void setPropuesta_Economica_Online_idPropuesta(String Propuesta_Economica_Online_idPropuesta) {
        this.Propuesta_Economica_Online_idPropuesta= Propuesta_Economica_Online_idPropuesta;
    }
 //--------------------------------------------   
   
    // Metodo Validar Usuario
   
    public ArrayList<usuario> ValidarUsuario(String loginUsuario,String passwordUsuario){
          
        ArrayList<usuario> listausuario = new ArrayList<usuario>();
        // Instancia a la clase conexion
        ConexionBD bd = new ConexionBD();
        // llamar al metodo conectar y se guarda en cn.
        Connection cn = bd.Contectar();
                 
        try {
                   
            // Arreglar consulta
          Statement consulta = cn.createStatement();  // crear la consulta.
          ResultSet resultado = consulta.executeQuery ("SELECT u.`idUsuario`, u.`tipoUsuario`, u.`loginUsuario`, u.`passwordUsuario`, p.`rutPersona`, pp.`idPresentacion`, c.`idColegio`, pe.`idPropuesta`from usuario u inner join persona p on p.`rutPersona`= u.`Persona_rutPersona`inner join presentacion_programa pp on pp.`idPresentacion`= u.`Presentacion_Programa_idPresentacion` inner join colegio c on c.`idColegio`= u.`Colegio_idColegio`inner join propuesta_economica_online pe on pe.`idPropuesta`= u.`Propuesta_Economica_Online_idPropuesta` where u.`loginUsuario`='"+loginUsuario+"' and u.`passwordUsuario`= '"+passwordUsuario+"'"); 
          
          if(resultado!=null){
          while(resultado.next()){
              usuario u = new usuario();
          
       
        
          u.setidUsuario(resultado.getString("u.idUsuario"));
          u.settipoUsuario(resultado.getString("u.tipoUsuario"));
          u.setloginUsuario(resultado.getString("u.loginUsuario"));
          u.setpasswordUsuario(resultado.getString("u.passwordUsuario"));
          u.setPersona_rutPersona(resultado.getString("p.rutPersona"));
          u.setPresentacion_Preograma_idPresentacion(resultado.getString("pp.idPresentacion")); 
          u.setColegio_idColegio(resultado.getString("c.idColegio"));
          u.setPropuesta_Economica_Online_idPropuesta(resultado.getString("pe.idPropuesta"));
       // aqui agrego los datos de la base de datos a un vector
          listausuario.add(u);
          }
          }else{
              
          listausuario.isEmpty();         
          }          
          cn.close();
          consulta.close();
                       
             }
               
        catch (SQLException e){
                 System.out.println("Error de MySQL: " + e.getMessage());
             }catch (Exception e){
                 System.out.println("Error inesperado: " + e.getMessage());
             }
        return listausuario;                     
    }
    
    
/**

    
    
   
 public ArrayList<usuario>MostrarTodasLasPersonasPorUsuario(){
        ArrayList<usuario> usuarios = new ArrayList<usuario>();
        ConexionBD bd = new ConexionBD();
        Connection cn = bd.Contectar();
        
        try {
                   
            // Arreglar consulta
          Statement consulta = cn.createStatement();  // esto es para crear la consulta.
          ResultSet resultado = consulta.executeQuery ("SELECT p.rutPersona,p.nombrePersona,p.apellidoPersona, p.`direccionPersona`, p.`telefonoPersona`, p.`emailPersona`,u.loginUsuario,u.passwordUsuario FROM persona p INNER JOIN usuario u ON u.`Persona_rutPersona`= p.`rutPersona` ");
          
          if(resultado!=null){
          while(resultado.next()){
              usuario u = new usuario();
          u.setrutPersona(resultado.getString("p.rutPersona"));
          u.setnombrePersona(resultado.getString("p.nombrePersona"));
          u.setapellidoPersona(resultado.getString("p.apellidoPersona"));
          u.setdireccionPersona(resultado.getString("p.direccionPersona"));
          u.settelefonoPersona(resultado.getString("p.telefonoPersona"));
          u.setemailPersona(resultado.getString("p.emailPersona")); 
          u.setloginUsuario(resultado.getString("u.loginUsuario"));
          u.setpasswordUsuario(resultado.getString("u.passwordUsuario")); 
          usuarios.add(u);
          }
          }else{
              
          usuarios.isEmpty();         
          }          
          cn.close();
          consulta.close();
                       
             }
               
        catch (SQLException e){
                 System.out.println("Error de MySQL: " + e.getMessage());
             }catch (Exception e){
                 System.out.println("Error inesperado: " + e.getMessage());
             }
        return usuarios;
 }
    
 
    
    
    
    public boolean EliminarUsuario(String rutPersona){
        ConexionBD bd = new ConexionBD();
        Connection cn = bd.Contectar();
        boolean ins = false;
        
        try{
            CallableStatement cl = cn.prepareCall("{CALL eliminarUsuario(?)}");
            cl.setString(1,loginUsuario);
            ins = cl.executeUpdate()==1? true : false;
     
                  if(ins){

                //Confirmamos la transaccion
                cn.commit();
                 } else {
                //Negamos la transaccion
                cn.rollback();
            }
               cn.close();
               cl.close();
               
                  }catch (SQLException e){
                 System.out.println("Error de MySQL: " + e.getMessage());
             }catch (Exception e){
                 System.out.println("Error inesperado: " + e.getMessage());
             } 
        return ins;

    }
    
       
 
    
    
    
    
    public usuario MostrarUnapersona(String passwordUsuario){
        usuario u = new usuario();
        usuario p = new usuario();
        ConexionBD bd = new ConexionBD();      
        Connection cn = bd.Contectar();
     
      try {       
          Statement consulta = cn.createStatement();  // esto es para crear la consulta."select * from persona p where p.`RUN`='"+run+"'"
          ResultSet resultado = consulta.executeQuery ("select * from persona p inner join usuario u on p.rutPersona = u.Persona_rutPersona where p.rutPersona='"+passwordUsuario+"'");
          while(resultado.next()){
              
        // "select u.`idUsuario`,u.`tipoUsuario`,u.`loginUsuario`,u.`passwordUsuario`,p.`rutPersona`,p.`nombrePersona`,p.`apellidoPersona`,p.`direccionPersona`,p.`telefonoPersona`,p.`emailPersona` from usuario u inner join persona p on u.`Persona_rutPersona`= p.`rutPersona` where u.`passwordUsuario`='"+pass+"'");
          u.setrutPersona(resultado.getString("p.rutPersona"));
              u.setnombrePersona(resultado.getString("p.nombrePersona"));
          u.setapellidoPersona(resultado.getString("p.apellidoPersona"));
          u.setdireccionPersona(resultado.getString("p.direccionPersona"));
          u.settelefonoPersona(resultado.getString("p.telefonoPersona"));
           
          }    
          cn.close();
          consulta.close();
          
          }catch (SQLException e){
                 System.out.println("Error de MySQL: " + e.getMessage());
             }catch (Exception e){
                 System.out.println("Error inesperado: " + e.getMessage());
             }
        
        return u;

    }
    * //
  */
}
    
    
 
    

    


    

    

